package dao;

import java.sql.SQLException;
import java.util.List;

import com.ibatis.sqlmap.client.SqlMapClient;

import domain.vo.queryObject;

/**
 * 
* @ClassName: ABSBasicDAO
* @Description:  所有DAO的抽象类
* @author chenchao
* @date 2013-11-6 上午02:28:35
*
* @param <T>
 */
public abstract class ABSBasicDAO <T>{
	/**
	 * SqlMapClient 对象
	 */
	protected  SqlMapClient  sqlMapClient = null;
	
	/**
	 * 构造方法
	 * @param sqlMapClient
	 */
	public ABSBasicDAO(SqlMapClient  sqlMapClient) {
		 this.sqlMapClient = sqlMapClient;
	}
	/**
	 * 获取所有数据
	 * @return
	 * @throws SQLException
	 */
	public List<T> getAll() throws SQLException{return null;}
	/**
	 * 获取单个数据
	 * @param id
	 * @return
	 * @throws SQLException
	 */
	public T getById(String id) throws SQLException{return null;}
	/**
	 * 按主键查询单个数据
	 * @return
	 */
	public T getByPK(){return null;}
	/**
	 * 插入数据
	 * @param t
	 * @throws SQLException
	 */
	public void insertT(T t) throws SQLException{}
	/**
	 * 更新数据
	 * @param t
	 * @throws SQLException
	 */
	public void updateT(T t) throws SQLException{}
	/**
	 * 删除数据
	 * @param id 主键
	 * @throws SQLException
	 */
	public void deleteT(int id) throws SQLException{}
	/**
	 * 根据queryObject 查询条件 返回数据集合
	 * @param queryObject 查询条件接口
	 * @return
	 */
	public  List<T> getObjectByQueryObject(queryObject queryObject)throws SQLException {return null;}
	/**
	 * 根据queryObject 查询条件 统计数据集合个数
	 * @param queryObject 查询条件接口
	 * @return
	 */
	public int countByQueryObject(queryObject queryObject)throws SQLException  {return 0;}
	
}
